Para compilar el firmware de este teclado usamos lo siguiente:
Podemos usar dos comandos distintos para compilar y flashear el firmware (básicamente los dos hacen los mismo);
El segundo comando tenemos que ejecutarlo desde la carpeta del qmk_firmware que es donde está el makefile
Para configurar las velocidades del raton editamos el archivo config.h dentro de la carpeta del teclado incluyendo lo siguiente al final:
#define MK_3_SPEED
#define MK_C_OFFSET_0 3
#define MK_C_OFFSET_1 7
#define MK_C_OFFSET_2 20
#define MK_C_INTERVAL_2 10
#define MK_W_OFFSET_0 1
#define MK_W_INTERVAL_0 100
#define MK_W_OFFSET_1 2
#define MK_W_INTERVAL_1 80
#define MK_W_OFFSET_2 6
#define MK_W_INTERVAL_2 5
Este archivo debe de estar colocado en: qmk_firmware/keyboards/xiudi/xd75/keymaps/Alfa-Omega/keymap.c
/* Copyright 2017 Wunder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum custom_keycodes {
MVKBD = SAFE_RANGE,
MVNAV,
MVMOUSE,
NAVBACK,
NAVFRNT,
SHDESK,
ALTWIN,
ALTTABR,
ALTTABL,
CRTTAB,
RUNTER,
RUNGB,
RUNCOM,
SOKEY,
SELECT,
CLIPB,
COPY,
PASTE,
CUTK,
UNDO,
DELETE,
CLOSETAB,
NEWTAB,
INCOG,
ALTF4,
APP1,
APP2,
APP3,
APP4,
APP5,
APP6,
APP7,
S_LANGBRT,
S_RANGBRT,
S_LCURLYBRT,
S_RCURLYBRT,
S_LSQBRT,
S_RSQBRT,
S_LPAREN,
S_RPAREN,
S_LQMARK,
S_RQMARK,
S_SLSH,
S_EQL,
S_QUOT,
S_AT,
S_ASTRK,
S_DOLLAR,
S_PERC,
S_HASTG,
S_ACFL,
S_AMP,
S_EXCL,
S_NFEM,
S_BSLSH,
S_VGL,
S_PIPE
};
enum layer_names {
_KB,
_NAV,
_MOUSE,
_NAVF,
_NAVFF,
_NUMBERS,
_SYMBOLS,
_MED
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case MVKBD:
if (record->event.pressed) {
// when keycode is pressed
layer_move(0);
} else {
// when keycode is released
}
break;
case MVNAV:
if (record->event.pressed) {
layer_move(1);
} else {
}
break;
case MVMOUSE:
if (record->event.pressed) {
layer_move(_MOUSE);
} else {
}
break;
case NAVBACK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_LEFT));
} else {
clear_keyboard();
}
break;
case NAVFRNT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT));
} else {
clear_keyboard();
}
break;
case SHDESK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_D));
} else {
clear_keyboard();
}
break;
case ALTWIN:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_TAB));
} else {
clear_keyboard();
}
break;
case ALTTABR:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_TAB));
} else {
clear_keyboard();
}
break;
case ALTTABL:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) SS_TAP(X_TAB));
} else {
clear_keyboard();
}
break;
case CRTTAB:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_T));
} else {
clear_keyboard();
}
break;
case RUNTER:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_LALT) SS_DOWN(X_T));
} else {
clear_keyboard();
}
break;
case RUNGB:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_LALT) SS_DOWN(X_B));
} else {
clear_keyboard();
}
break;
case RUNCOM:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_F2));
layer_move(0);
} else {
clear_keyboard();
}
break;
case SOKEY:
if (record->event.pressed) {
layer_move(0);
SEND_STRING(SS_DOWN(X_LGUI));
} else {
clear_keyboard();
}
break;
case SELECT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT));
} else {
clear_keyboard();
}
break;
case CLIPB:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_V));
} else {
clear_keyboard();
}
break;
case COPY:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_C));
} else {
clear_keyboard();
}
break;
case PASTE:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_V));
} else {
clear_keyboard();
}
break;
case CUTK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_X));
} else {
clear_keyboard();
}
break;
case UNDO:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_Z));
} else {
SEND_STRING(SS_UP(X_LCTL) SS_UP(X_Z));
}
break;
case DELETE:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_BSPC));
} else {
clear_keyboard();
layer_move(0);
}
break;
case CLOSETAB:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_W));
} else {
clear_keyboard();
}
break;
case NEWTAB:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_T));
} else {
clear_keyboard();
}
break;
case INCOG:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) SS_DOWN(X_N));
} else {
clear_keyboard();
}
break;
case ALTF4:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_F4));
} else {
clear_keyboard();
}
break;
case APP1:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_1));
} else {
clear_keyboard();
}
break;
case APP2:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_2));
} else {
clear_keyboard();
}
break;
case APP3:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_3));
} else {
clear_keyboard();
}
break;
case APP4:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_4));
} else {
clear_keyboard();
}
break;
case APP5:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_5));
} else {
clear_keyboard();
}
break;
case APP6:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_6));
} else {
clear_keyboard();
}
break;
case APP7:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_7));
} else {
clear_keyboard();
}
break;
/*---------------SYMBOLS----------------*/
case S_RANGBRT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_NUBS));
} else {
clear_keyboard();
}
break;
case S_LCURLYBRT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_QUOT));
} else {
clear_keyboard();
}
break;
case S_RCURLYBRT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_BSLS));
} else {
clear_keyboard();
}
break;
case S_LSQBRT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_LBRC));
} else {
clear_keyboard();
}
break;
case S_RSQBRT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_RBRC));
} else {
clear_keyboard();
}
break;
case S_LPAREN:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_8));
} else {
clear_keyboard();
}
break;
case S_RPAREN:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_9));
} else {
clear_keyboard();
}
break;
case S_LQMARK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_EQL));
} else {
clear_keyboard();
}
break;
case S_RQMARK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_MINS));
} else {
clear_keyboard();
}
break;
case S_SLSH:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_7));
} else {
clear_keyboard();
}
break;
case S_EQL:
if (record->event.pressed) {
SEND_STRING(SS_UP(X_RALT));
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_0));
} else {
clear_keyboard();
}
break;
case S_QUOT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_2));
} else {
clear_keyboard();
}
break;
case S_AT:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_2));
} else {
clear_keyboard();
}
break;
case S_ASTRK:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_RBRC));
} else {
clear_keyboard();
}
break;
case S_DOLLAR:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_4));
} else {
clear_keyboard();
}
break;
case S_PERC:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_5));
} else {
clear_keyboard();
}
break;
case S_HASTG:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_3));
} else {
clear_keyboard();
}
break;
case S_ACFL:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_LBRC));
} else {
clear_keyboard();
}
break;
case S_AMP:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_6));
} else {
clear_keyboard();
}
break;
case S_EXCL:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_1));
} else {
clear_keyboard();
}
break;
case S_NFEM:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LSFT) SS_DOWN(X_GRV));
} else {
clear_keyboard();
}
break;
case S_BSLSH:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_GRV));
} else {
clear_keyboard();
}
break;
case S_VGL:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_4));
} else {
clear_keyboard();
}
break;
case S_PIPE:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_RALT) SS_DOWN(X_1));
} else {
clear_keyboard();
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* KB
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | APP1 | APP2 | APP3 | , | ESC | APP4 |KC_VOLD |KC_VOLU | APP5 | APP6 | . | DEL | APP7 |PRTSCCR |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | CAPS | ' | Q | W | E | R | T | RUNCOM | LGUI | Y | U | I | O | P | ' |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
* | SHDESK | TAB | A | S | D | F | G |MVMOUSE | RUNTER | H | J | K | L | - | LCTRL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
* | LSHIFT |NUMBERS | Z | X | C | V | B | KC_APP | RUNGB | N | M | = | MVNAV | Ñ | LALT |
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
* | | LCTRL | LGUI | MEDIA | LALT |KC_LSFT | BACKSP | | TAB | ENTER | SPACE | SYMB | RALT | RGUI | RCTRL |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_KB] = LAYOUT_ortho_5x15( /* QWERTY */
KC_NO, APP1, APP2, APP3, KC_COMM, KC_ESC, APP4, KC_VOLD, KC_VOLU, APP5, APP6, KC_DOT, KC_DEL, APP7, KC_PSCR,
KC_CAPS, KC_QUOT, KC_Q, KC_W, KC_E, KC_R, KC_T, RUNCOM, KC_LGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
SHDESK, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, MVMOUSE, RUNTER, KC_H, KC_J, KC_K, KC_L, KC_SLSH, KC_LCTL,
KC_LSFT, MO(_NUMBERS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_APP, RUNGB, KC_N, KC_M, S_EQL, MVNAV, KC_SCLN, MO(_NUMBERS),
KC_NO, KC_LCTL, KC_LGUI, TG(_MED), KC_LALT, KC_LSFT, KC_BSPC, KC_NO, KC_TAB, KC_PENT, KC_SPC,MO(_SYMBOLS), KC_RALT, KC_RGUI, KC_RCTL
),
/* NAV
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | APP1 | APP2 | APP3 | | ESC | APP4 | VOL_D | VOL_U | APP5 | APP6 | |KC_TRNS | APP7 |KC_TRNS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | ALTF4 |CLOSETAB|ALTTABL |ALTTABR | NEWTAB | RUNCOM | SOKEY | | | UP | PG_UP | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* |KC_TRNS | TAB | ALTWIN | | LCTL | LSHIFT | |MVMOUSE | | HOME | LEFT | DOWN | RIGHT | END | MVKBD |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* |SELECT |NUMBERS | UNDO | CUT | COPY | PASTE | CLIPB | KC_APP | | INCOG |PG_DOWN | | | |NUMBERS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | LCTL | LCTRL | | | LALT | MVKBD | DELETE | | | ENTER |KC_TRNS | SYMB | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_NAV] = LAYOUT_ortho_5x15( /* FUNCTION */
KC_NO, APP1, APP2, APP3, KC_NO, KC_ESC, APP4, KC_VOLD, KC_VOLU, APP5, APP6, KC_NO, KC_TRNS, APP7, KC_TRNS,
KC_NO, KC_NO, ALTF4, CLOSETAB, ALTTABL, ALTTABR, NEWTAB, RUNCOM, SOKEY, KC_NO, KC_NO, KC_UP, KC_PGUP, KC_NO, KC_NO,
KC_TRNS, KC_TAB, ALTWIN, KC_NO, KC_LCTL, KC_LSFT, KC_NO, MVMOUSE, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, MVKBD,
SELECT, MO(_NUMBERS), UNDO, CUTK, COPY, PASTE, CLIPB, KC_APP, KC_NO, INCOG, KC_PGDN, KC_NO, KC_NO, KC_NO, MO(_NUMBERS),
KC_LCTL,KC_LCTL, KC_NO, TG(_MED), KC_LALT, MVKBD, DELETE, KC_NO, KC_TAB, KC_PENT, KC_TRNS, MO(_SYMBOLS), KC_NO, KC_NO, KC_NO
),
/* NUMBERS
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | , | | | | | | | . | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | F1 | F2 | F3 | F4 | F5 | | | | 7 | 8 | 9 | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | F5 | F6 | F7 | F8 | | | | | 4 | 5 | 6 | | CTRL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | F9 | F10 | F11 | F12 | | | | 0 | 1 | 2 | 3 | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | CTRL | | | ALT | SHIFT |KC_TRNS | |KC_TRNS |KC_TRNS | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_NUMBERS] = LAYOUT_ortho_5x15(
KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO,
KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, KC_LCTL,
KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_NO, KC_TRNS,
KC_NO, KC_LCTL, KC_NO, KC_NO, KC_LALT, KC_LSFT, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
/* MOUSE
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | RESET | APP1 | APP2 | APP3 | | ESC | APP4 | VOL_D | VOL_U | APP5 | APP6 | |KC_TRNS | APP7 |KC_TRNS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | ALTF4 |CLOSETAB|ALTTABL |ALTTABR | NEWTAB | RUNCOM |SOKEY | M_BTN2 | M_BTN1 | M_UP | M_WH_U | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* |KC_TRNS | ALTWIN | ACL_0 | ACL_1 | ACL_2 | M_BTN1 | M_BTN2 | | |NAVBACK | M_LEFT | M_DOWN |M_RIGHT |NAVFRNT | MVKBD |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | INCOG | M_WH_D | | MVNAV | |KC_TRNS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | MVKBD |KC_TRNS | |KC_TRNS | ENTER |KC_TRNS | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_MOUSE] = LAYOUT_ortho_5x15( /* FUNCTION */
RESET, APP1, APP2, APP3, KC_NO, KC_ESC, APP4, KC_VOLD, KC_VOLU, APP5, APP6, KC_NO, KC_TRNS, APP7, KC_TRNS,
KC_NO, KC_NO, ALTF4,CLOSETAB, ALTTABL, ALTTABR, NEWTAB, RUNCOM, SOKEY, KC_BTN2, KC_BTN1, KC_MS_U, KC_WH_U, KC_NO, KC_NO,
KC_TRNS, ALTWIN,KC_ACL0, KC_ACL1, KC_ACL2, KC_BTN1, KC_BTN2, KC_NO, KC_NO, NAVBACK, KC_MS_L, KC_MS_D, KC_MS_R, NAVFRNT, MVKBD,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, INCOG, KC_WH_D, KC_NO, MVNAV, KC_NO, KC_TRNS,
KC_NO, KC_NO, KC_NO,TG(_MED), KC_NO, MVKBD, KC_TRNS, KC_NO, KC_TRNS, KC_PENT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
),
/* Symbols
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | ª | º | @ | | | | | | | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | ¿ | ? | < | > | $ | | | | ^ | ( | ) | ~ | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | + | / | { | } | = | | | | & | " | ' | \ | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | ` | * | [ | ] | % | | | | # | | | ! | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | |KC_TRNS | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_SYMBOLS] = LAYOUT_ortho_5x15( /* FUNCTION */
KC_NO, KC_NO, S_NFEM, KC_GRV, S_AT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, S_LQMARK, S_RQMARK, KC_NUBS, S_RANGBRT, S_DOLLAR, KC_NO, KC_NO, KC_NO, S_ACFL, S_LPAREN, S_RPAREN, S_VGL, KC_NO,
KC_NO, KC_NO, KC_RBRC, S_SLSH, S_LCURLYBRT, S_RCURLYBRT, S_EQL, KC_NO, KC_NO, KC_NO, S_AMP, S_QUOT, KC_MINS, S_BSLSH, KC_NO,
KC_NO, KC_NO, KC_LBRC, S_ASTRK, S_LSQBRT, S_RSQBRT, S_PERC, KC_NO, KC_NO, KC_NO,S_HASTG, S_PIPE, S_EXCL, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO
),
/* MEDIA
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | |KC_VOLD |KC_VOLU | | | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | |RGB_HUI |RGB_SAI |RGB_VAI |RGB_SPI | | RUNCOM | SOKEY | | | STOP | VOLU | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | |RGB_HUD |RGB_SAD |RGB_VAD |RGB_SPD | |MVMOUSE | | | PREV | PLAY | NEXT | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | |RGB_TOG |RGB_MOD |RGB_RMOD| | | | | | VOLD | | | | MVKBD |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | MVKBD | | MVNAV | | | MUTE | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_MED] = LAYOUT_ortho_5x15( /* FUNCTION */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, RUNCOM, SOKEY, KC_NO, KC_NO, KC_MSTP, KC_VOLU, KC_NO, KC_NO,
KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, MVMOUSE, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO,
KC_NO, KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_NO, KC_NO, KC_NO, MVKBD,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MVKBD, KC_NO, MVNAV, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO
)
};
QMK | xd75re | keymap